package com.zhijian.medical.entity.vo.response;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * @author HCG
 * @version 1.0
 * @date 2023-10-20
 */
@Data
@Api(tags = "实验报告的数据加实验模板")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ExperimentWithTemplateVo implements Serializable {
    private static final long serialVersionUID = 4594443285391746596L;

    /**
     * 填充数据
     */
    @ApiModelProperty("填充数据")
    private DataVo data;

    /**
     * 实验模板
     */
    @ApiModelProperty("实验模板")
    private PrintTemplateVo printTemplate;

    /**
     * 数据
     */
    @Data
    @Api(tags = "数据")
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class DataVo implements Serializable {

        private static final long serialVersionUID = 3654011667617457741L;

        /**
         * 历史检查
         */
        @ApiModelProperty("历史检查")
        private String lsjc;

        /**
         * 肉眼可见
         */
        @ApiModelProperty("肉眼可见")
        private String rykj;

        /**
         * 组织学病理诊断
         */
        @ApiModelProperty("组织学病理诊断")
        private String zzxblzd;

        /**
         * 姓名
         */
        @ApiModelProperty("姓名")
        private String xm;

        /**
         * 性别
         */
        @ApiModelProperty("性别")
        private String xb;

        /**
         * 年龄
         */
        @ApiModelProperty("年龄")
        private Integer nl;

        /**
         * 收到日期，格式'2022-01-01 11:11'
         */
        @ApiModelProperty("收到日期，格式'2022-01-01 11:11'")
        private String sdrq;

        /**
         * 送检医院
         */
        @ApiModelProperty("送检医院")
        private String sjyy;

        /**
         * 病区
         */
        @ApiModelProperty("病区")
        private String bq;

        /**
         * 科别
         */
        @ApiModelProperty("科别")
        private String kb;

        /**
         * 送检医生
         */
        @ApiModelProperty("送检医生")
        private String sjys;

        /**
         * 门诊号
         */
        @ApiModelProperty("门诊号")
        private String mzh;

        /**
         * 床号
         */
        @ApiModelProperty("床号")
        private String ch;

        /**
         * 住院号
         */
        @ApiModelProperty("住院号")
        private String zyh;

        /**
         * 病理号
         */
        @ApiModelProperty("病理号")
        private String blh;

        /**
         * 病理诊断
         */
        @ApiModelProperty("病理诊断")
        private String blzd;


        /**
         * 检测项目下的临床诊断
         */
        @ApiModelProperty("检测项目下的临床诊断")
        private String lczd;

        /**
         * 检测项目下的标本类型
         */
        @ApiModelProperty("检测项目下的标本类型")
        private String bblx;

        /**
         * 检测项目下的标本评估
         */
        @ApiModelProperty("检测项目下的标本评估")
        private String bbpg;

        /**
         * 突变检测
         */
        @ApiModelProperty("突变检测")
        private String tbjc;

        /**
         * KRAS突变检测阳性对照
         */
        @ApiModelProperty("KRAS突变检测阳性对照")
        private String krastbjcyxdz;

        /**
         * KRAS突变检测外控对照ct值
         */
        @ApiModelProperty("KRAS突变检测外控对照ct值")
        private String krastbjcwkdzctz;

        /**
         * KRAS数据
         */
        @ApiModelProperty("KRAS数据")
        private String krasdata;

        /**
         * NRAS突变检测阳性对照
         */
        @ApiModelProperty("NRAS突变检测阳性对照")
        private String nrastbjcyxdz;

        /**
         * NRAS突变检测外控对照ct值
         */
        @ApiModelProperty("NRAS突变检测外控对照ct值")
        private String nrastbjcwkdzctz;

        /**
         * NRAS数据
         */
        @ApiModelProperty("NRAS数据")
        private String nrasdata;

        /**
         * BRAF数据
         */
        @ApiModelProperty("BRAF数据")
        private String brafdata;

        /**
         * 结果描述
         */
        @ApiModelProperty("结果描述")
        private String jgms;

        /**
         * 结果解释
         */
        @ApiModelProperty("结果解释")
        private String jgjs;

        /**
         * 分子病理号
         */
        @ApiModelProperty("分子病理号")
        private String fzblh;

        /**
         * 审核人
         */
        @ApiModelProperty("审核人")
        private String shr;

        /**
         * 类型，1：KNB，2：高危HPV，3：JAK2，4：肺癌5种，5：PIK3CA，6：新冠病毒
         */
        @ApiModelProperty("类型，1：KNB，2：高危HPV，3：JAK2，4：肺癌5种，5：PIK3CA，6：新冠病毒")
        private String lx;

        /**
         * 检测项目
         */
        @ApiModelProperty("检测项目")
        private String jcxm;

//        /**
//         * 扩增曲线文件地址列表
//         */
//        @ApiModelProperty("扩增曲线文件地址列表")
//        private List<String> kzLineFilePathList;

        /**
         * 样本检测图
         */
        @ApiModelProperty("样本检测图")
        private String ybjct;

        /**
         * 阴阳性质控图
         */
        @ApiModelProperty("阴阳性质控图")
        private String yyxzkt;

        /**
         * 检测结果
         */
        @ApiModelProperty("检测结果")
        private List<Jcjg> jcjg;

        /**
         * 检测结果
         */
        @Data
        @Api(tags = "检测结果")
        @Builder
        @NoArgsConstructor
        @AllArgsConstructor
        public static class Jcjg implements Serializable {

            private static final long serialVersionUID = -386897968360098566L;

            /**
             * 检测项目
             */
            @ApiModelProperty("检测项目")
            private String jcxm;

            /**
             * 外显子
             */
            @ApiModelProperty("外显子")
            private String wxz;

            /**
             * 突变类型
             */
            @ApiModelProperty("突变类型")
            private String tblx;

            /**
             * 检测结果
             */
            @ApiModelProperty("检测结果")
            private String jcjg;
        }
    }
}
